//!
/**
 ***********************************************************************************************************
 * <RBDefaultStream Implementation>
 ***********************************************************************************************************
 * @file RBDefaultStream.cpp
 ***********************************************************************************************************/

/***********************************************************************************************************
 * Precompiled Header
 ***********************************************************************************************************/
#include "RBMainPCH.h"

/***********************************************************************************************************
 * Includes
 ***********************************************************************************************************/
#include "RBDefaultStream.h"

/***********************************************************************************************************
 * Defines
 ***********************************************************************************************************/

/***********************************************************************************************************
 * Classes implementation
 ***********************************************************************************************************/


/***********************************************************************************************************
 *
 ***********************************************************************************************************/
RBDefaultStream::RBDefaultStream()
{
    m_pFile = 0;
}

/***********************************************************************************************************
 *
 ***********************************************************************************************************/
RBDefaultStream::~RBDefaultStream()
{
    Close();
}

/***********************************************************************************************************
 *
 ***********************************************************************************************************/
void RBDefaultStream::WriteBuffer(const void* pBuffer, uint32 uiSizeInBytes)
{
    m_pFile->Write(static_cast<const char*>(pBuffer), uiSizeInBytes);
}

/***********************************************************************************************************
 *
 ***********************************************************************************************************/
void RBDefaultStream::ReadBuffer(void* pBuffer, uint32 uiSizeInBytes)
{
    m_pFile->Read(static_cast<char*>(pBuffer), uiSizeInBytes);
}

/***********************************************************************************************************
 *
 ***********************************************************************************************************/
bool RBDefaultStream::Open(const RBString& strFilename, RBFile::OpenMode eFileMode)
{
    m_pFile = RBFile::Open(strFilename.c_str(), eFileMode);

    return m_pFile != 0;
}

/***********************************************************************************************************
 *
 ***********************************************************************************************************/
void RBDefaultStream::Close()
{
    RBFile::Close(m_pFile);
}
